#ifndef IF_DMXSLIDERPANEL_H
#define IF_DMXSLIDERPANEL_H

#include <QWidget>
#include <QList>

class IF_DmxSliderPanel : public QWidget
{
   Q_OBJECT
public:
   IF_DmxSliderPanel( QWidget *parent = NULL) : QWidget(parent) { }
   virtual ~IF_DmxSliderPanel() {}

public slots:
   /**
    * @brief application asks GUI to set a list of values for channels
    * @param values - are in range 0.0 - 100.0 (precent of full light)
    */
   virtual void setAllValues( const QList<double> &values) = 0;
   virtual void setValueAtChannel( double value, int channel) = 0;

   /**
    * @brief this slot is used to customize aspect and behaviour when
    *    DMX device is turned on.
    */
   virtual void setDmxOn() = 0;

   /**
    * @brief this slot is used to customize aspect and behaviour when
    *    DMX device is turned off.
    */
   virtual void setDmxOff() = 0;

signals:
   /**
    * @brief GUI signals that user has changed slider \p channel to value \p value
    * @param value - range 0.0 - 100.0
    * @param channel - 0 based value
    */
   void valueChangedByGUI( double value, int channel );
};

#endif // IF_DMXSLIDERPANEL_H
